package com.governtalk.backend.service;

import com.governtalk.backend.dto.CollectionDto;
import org.springframework.data.domain.Page;

public interface CollectionService {
    
    // 添加收藏
    CollectionDto addCollection(CollectionDto collectionDto);
    
    // 取消收藏
    void removeCollection(Long userId, String contentType, Long contentId);
    
    // 检查是否已收藏
    boolean isCollected(Long userId, String contentType, Long contentId);
    
    // 获取用户的收藏列表
    Page<CollectionDto> getUserCollections(Long userId, int page, int size);
    
    // 根据内容类型获取收藏列表
    Page<CollectionDto> getUserCollectionsByType(Long userId, String contentType, int page, int size);
    
    // 搜索收藏
    Page<CollectionDto> searchUserCollections(Long userId, String keyword, int page, int size);
    
    // 删除收藏
    void deleteCollection(Long collectionId);
    
    // 批量删除收藏
    void batchDeleteCollections(Long userId, Long[] collectionIds);
    
    // 清空用户收藏
    void clearUserCollections(Long userId);
    
    // 清空特定类型的收藏
    void clearUserCollectionsByType(Long userId, String contentType);
}
